# frame切换

# frame：HTML页面中的一种框架，主要作用是在当前页面中指定区域显示另一页面元素；
# 形式一：[了解]
# <frameset cols="25%,75%">
# <frame src="frame_a.htm">
# <frame src="frame_b.htm">
# </frameset>
# 形式二：
# <iframe name="iframe_a" src="demo_iframe.htm" width="200" height="200"></iframe>

# rame切换方法
# 说明：在Selenium中封装了如何切换frame框架的方法
# 方法：
# 1). driver.switch_to.frame(frame_reference) --> 切换到指定frame的方法
# frame_reference：可以为frame框架的name、id或者定位到的frame元素
# 2). driver.switch_to.default_content() --> 恢复默认页面方法
# 在frame中操作其他页面，必须先回到默认页面，才能进一步操作

# 导包
import time
from selenium import webdriver
from selenium.webdriver import Keys
from selenium.webdriver.common.by import By
from selenium.webdriver.chrome.service import Service
from selenium.webdriver.chrome.options import Options

# 打开浏览器
service = Service(r"D://Python314//chromedriver.exe")
chrome_options = Options()
chrome_options.add_experimental_option("detach", True)
driver = webdriver.Chrome(service=service, options=chrome_options)   # 创建浏览器对象

# 2.输入访问地址（URL）
# driver.get("http://121.43.169.97:8848/pageA.html")
url = r"D:\pythonProject\pythonProject1\注册实例.html";
driver.get(url)



#（1）填写主页面的注册信息
# 用户名
driver.find_element(By.CSS_SELECTOR,"#user").send_keys("amdin")
# 密码
driver.find_element(By.CSS_SELECTOR,"#password").send_keys("123456")
# 手机号
driver.find_element(By.CSS_SELECTOR,"#tel").send_keys("18977789")
# 邮箱
driver.find_element(By.CSS_SELECTOR,"#email").send_keys("232@qq.com")

# 切换到注册A
# 1. 完成主页面注册信息；  done
# 2. 调用frame切换方法(switch_to.frame("myframe1"))切换到注册用户A框架中
# driver.switch_to.frame("myframe1")  # 使用name切换
driver.switch_to.frame("idframe1")  # 使用id切换
# 2). 填写注册页面A中的注册信息
# 用户名
driver.find_element(By.CSS_SELECTOR,"#userA").send_keys("1111")
# # 密码
driver.find_element(By.CSS_SELECTOR,"#passwordA").send_keys("123456")
# 电话号码
driver.find_element(By.CSS_SELECTOR,"#telA").send_keys("13012345678")
# 电子邮件
driver.find_element(By.CSS_SELECTOR,"#emailA").send_keys("123@qq.com")
time.sleep(2)


# 3. 调用恢复默认页面方法(switch_to.default_content())
driver.switch_to.default_content()
# 4. 调用frame切换方法(switch_to.frame("myframe2"))切换到注册用户B框架中
# 切换到注册B页面 使用name
driver.switch_to.frame("myframe2")
# 2). 填写注册页面B中的注册信息
# 用户名
driver.find_element(By.CSS_SELECTOR,"#userB").send_keys("1111")
# # 密码
driver.find_element(By.CSS_SELECTOR,"#passwordB").send_keys("123456")
# 电话号码
driver.find_element(By.CSS_SELECTOR,"#telB").send_keys("13012345678")
# 电子邮件
driver.find_element(By.CSS_SELECTOR,"#emailB").send_keys("123@qq.com")
time.sleep(2)


#恢复默认页面方法
driver.switch_to.default_content()
time.sleep(2)